/* blank.h */

#ifndef DODO_PLOT_BLANK_H
#define DODO_PLOT_BLANK_H

#include <dodo_plot/kernel/plotfwd.h>
#include <dodo_plot/kernel/point.h>
#include <dodo_plot/kernel/position.h>
#include <dodo_plot/kernel/color.h>

namespace dodo_plot
{
/**
 * Blank供绘制一块指定大小的矩形空白区域, 
 * 以作为一个色块, 或一个框, 或一个坐标参考区域使用. 
 * 其背景色和边框颜色可选. 
 */
/// Blank供绘制一块指定大小的矩形空白区域. 
class Blank
{
public:	
	void draw(const Plotter& plotter) const;

public:
	double height() const { return h_; }
	double width() const { return w_; }
	Position local_pos() const { return Position(0.0, w_, 0.0, h_);}
public:
	/**
	 * \param color 背景色. 
	 * \param opaque 是否不透明. true: 将先用白色覆盖一遍, 再绘制真正的颜色; false: 直接绘制背景色, 此时如果背景色为半透明, 则下面信息仍可见.
	 * \param border_color 边框颜色. 
	 * \param border_width 边框粗细, 为绝对像素数. 
	 */
	Blank(double width, double height, 
		const Color& color = Color(1.0, 1.0, 1.0), bool opaque = true, 
		const Color& border_color = color_name::TRANSPARENT, double border_width = 1.0) :
		w_(width), h_(height), 
		c_(color), opaque_(opaque),
		border_color_(border_color), border_width_(border_width)
	{ }

private:
	double w_, h_;
	Color c_;
	Color border_color_;
	double border_width_;
	bool opaque_;
};

}

#endif //DODO_PLOT_BLANK_H

